package com.wenguodong.demofirstt.controller;

import com.wenguodong.demofirstt.pojo.User;
import com.wenguodong.demofirstt.service.UserService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

/*
 *@Time：2023/4/13
 *@Author：Jelly
 * 此类是登录页（login.html）的功能实现
 * @1.功能一：登录，调用校验账号方法，校验成功进入主页面，校验失败重回登录页面
 * @2.功能二：进入注册页面
 */
@Controller
public class LoginController {

    @Autowired
    private UserService userService;

    @GetMapping( "/login")
    public String loginPage() {
        return "login";
    }

    @PostMapping("/login")
    public String goToMain(User user, HttpSession session, Model model) {
        System.out.println(user);
        //设置状态码
        int flag;

        //验证账号密码
        if (userService.getUserByNameAndPwd(user.getUserName(), user.getUserPassword()) != null) {
            //如果查询结果不为空，则说明验证成功
            flag = 200; //验证码设为200
        } else {
            //验证失败，状态码为300
            flag = 300;
        }
        if (flag == 200) {
            // 验证通过
            //将用户的名字和密码放入到session中
            session.setAttribute("userName", user.getUserName());
            session.setAttribute("userPassword", user.getUserPassword());
            //登录成功，重定向到/main上
            return "redirect:/main";
        } else {
            //返回错误信息
            model.addAttribute("msg", "用户名或密码错误");
            return "login";
        }
    }


    //接收重定向来的main，并转发到templates/main.html上
    @GetMapping("/main")
    public String goToMain(HttpSession session, Model model) {
        /**
         * 如果session里面的userName不为空的话，就说明用户信息已经存到session里面去了
         * 说明用户已经完成校验，可以登录到主页面
         */
        if (session.getAttribute("userName") != null) {
            model.addAttribute("Name",session.getAttribute("userName"));
            return "main";
            //return "redirect:http://www.wenguodong.com";
        } else {
            //否者就返回错误信息msg，并跳到登陆页面
            model.addAttribute("msg", "请重新登录");
            return "login";
        }
    }

    //login页面上的注册按钮，点击重定向到/register中
    @PostMapping("/registerBtn")
    public String goToRegister() {
        return "redirect:/register";
    }

    //接收重定向的/register，并转发到templates/register.html上
    @GetMapping("/register")
    public String Register() {
        return "register";
    }

}
